package com.jobs;

import java.util.*;

/**
 * 数组操作
 */
public class job01_2 {
    //成绩的最大值
    public static int maxScore(int[] scoreArray){
        int max=scoreArray[0];
        for(int i=1;i<scoreArray.length;i++)
            max=scoreArray[i]>max?scoreArray[i]:max;
        return max;
    }
    //成绩最小值
    public static int minScore(int[] scoreArray){
        int min=scoreArray[0];
        for(int i=1;i<scoreArray.length;i++)
            min=scoreArray[i]<min?scoreArray[i]:min;
        return min;
    }
    //成绩之和
    public static int sumScore(int[] scoreArray) {
        int sum = 0;
        for (int i = 0; i < scoreArray.length; i++)
            sum += scoreArray[i];
        return sum;
    }
    //按成绩排序学生信息
    public static Map<Integer, List<String>> ScoreSort(String[] stuNo, String[] stuName, int[] stuScore){
        //因为Map是无序的，这里我用LinkedHashMap，保证插入和取出的顺序一致
        Map<Integer, List<String>> map= new LinkedHashMap<>();
        //根据成绩，利用冒泡排序整理排名(降序)
        for(int i=0;i<stuScore.length;i++){
            //每次从第一位索引开始，将最大值往后移
            for(int j=0;j<stuScore.length-(i+1);j++){
                //当前值与后一位进行比较，但最后一次不和已排序的值进行比较
                if(stuScore[j]<stuScore[j+1]){
                    //成绩后挪
                    int t_stuScore=stuScore[j];
                    stuScore[j]=stuScore[j+1];
                    stuScore[j+1]=t_stuScore;
                    //学号后挪
                    String t_stuNo=stuNo[j];
                    stuNo[j]=stuNo[j+1];
                    stuNo[j+1]=t_stuNo;
                    //姓名后挪
                    String t_stuName=stuName[j];
                    stuName[j]=stuName[j+1];
                    stuName[j+1]=t_stuName;
                }
            }
        }
        //将排序好的信息插入map
        List<String> list=null;
        for(int i=0;i<stuScore.length;i++){
            list=new ArrayList<>();
            list.add(stuNo[i]);
            list.add(stuName[i]);
            map.put(stuScore[i],list);
        }
        return map;
    }

}
